不定期更新

变量名

变量命名时尽量不要用type, class 这些名称,以免用的时候,报一些奇怪的错误。编译器不知道是,自定义的名,还是语法里的意思。comment 也是关键字,需自己导包,我也是服了。

eager

eager 谨慎使用,特别是relation有相互包含的时候。必须只能加在一边,防止重复包含,导致stack overflow。
eager 只会在find里生效,querybuilder 必须join

find

find 有很多选项足够用了可以代替 queryBuilder

OneToMany Save

例子: 商品储存多个价格, data 是发送的商品数据,其中包含了price

    data.price = await this.priceRepository.save(price);
    data = await this.repository.create(data);
    return await this.repository.save(data);

注意 data.price 这一步是必须的,是为了更新刚储存完的id号,typeorm 用id 来建立关系

环境变量

process.env. 在for root里不好使,即使在main.ts里提前执行了config()。
非 for root 使用 require('dotenv').config() rocess.env.
for root 使用 aynscfor root
在服务器更新 .env 文件
##数据库更新
typeorm 更新的很随缘,如果发现数据格式不符bug。可以把dist文件夹删了 重跑一遍。
如 enum更新,或Column type更新
typeorm 从 entity.js 读取column 信息。

Controller

切记不要写这种路径 Get(':id') Get('user')

Swagger paramter

参数必须声明类型,swagger才能识别到

nestjsx/crud

版本最好4.6.0, 4.5同时get by id和relation会报sql syntax error

typescript

类型错误或不匹配时候可以强行转成any
You can always temporarily cast $ to any:
delete ($ as any).summernote

mysql: 3306 eradr

出现这个错误大概率是,.env或production.env 的问题,本地的话检查下port端口,设置为localhost

Observable

nestjs httpservice 默认返回Observable

Observable异常处理

      .pipe(
        catchError(err => {
          return of(err.message);
        }),
      );

Observable值异步处理

    result.subscribe((value)=> {
      console.log(value);
    });

I am a real pikachu!